package Model;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import java.io.InputStream;
import java.util.Scanner;
import java.util.StringTokenizer;
import java.util.ArrayList;
import java.util.HashMap;


public class contactFile {
	
	//ArrayList listContacts;
	//this.listContacts = new ArrayList<Contact>();
	
	InputStream is = getClass().getResourceAsStream("contacts.csv");
	
	
}


/**

public class FichierDroguerie { // doit tenir compte des séparateurs ; pour remplir un ArrayList d'articles

    ArrayList listefamille;
    HashMap mappy;
    HashMap mapfam;

    public FichierDroguerie() {

        this.mappy = new HashMap<Integer, Article>();

        this.mapfam = new HashMap<String, ArrayList>();

        this.listefamille = new ArrayList<FamilleProduits>(); // listefamille est une array liste de familleproduit (équivalent de mappy)
        // dans le constructeur
    }

    public void Load() {

        InputStream is = getClass().getResourceAsStream("droguerie.csv");
        Scanner sc = new Scanner(is); // on ouvre le fichier et on le met dans sc

        int i;
        int nbarticles[];
        nbarticles = new int[10]; // on créé un tableau de 10 qui contiendra les familles
        for (int n = 0; n < 10; n++) {
            nbarticles[n] = 0; // il y a au départ aucun article dans une famille (la famille n)
        }

        String ch;
        sc.nextLine(); // toute la premiere ligne
        ch = sc.nextLine(); // toute la seconde
        StringTokenizer str = new StringTokenizer(ch, ";"); // on coupe en élément le ch

        //Menage, Beaute, entretien, Pharmacie, Lavage, Table, Automobile, Eclairage,

        FamilleProduits famille;
        famille = new FamilleProduits();


        for (i = 0; i < 3; i++) {
            ch = str.nextToken(); // on prends le 4eme token donc le nom
        }
        famille.setNom(ch); // change le nom des familles de familleproduit
        listefamille.add(famille); // on ajoute une famille dans liste famille (la premiere)

        FamilleProduits compare; // on fait une autre famille produit que famille afin de comparer
        boolean found = false;
        compare = new FamilleProduits();

        //AJOUT FAMILLE PRODUITS

        while (sc.hasNextLine()) { // on va faire la boucle tant qu'il y a qqch dans le scanner
            //System.out.println(ch);
            for (i = 0; i < listefamille.size(); i++) {
                compare = (FamilleProduits) listefamille.get(i);
                if (compare.getNom().equals(ch)) { // remplit d'un article si le nom dans compare == ch
                    found = true;
                    nbarticles[i]++; // le nombre d'article de la famille i augmente
                    break;
                } else {
                    found = false;
                }
            }
            if (!found) { // lorsque found est faux donc que les deux noms sont différents alors on créé une nouvelle famille
                //System.out.println(ch + "not found");
                FamilleProduits nouvellefamille = new FamilleProduits();
                nouvellefamille.setNom(ch);
                listefamille.add(nouvellefamille); // on ajoute une nouvelle famille dans l'array liste listefamille (la 2eme puis la troisieme...)
            }


            ch = sc.nextLine(); // on passe a la ligne suivante
            str = new StringTokenizer(ch, ";");
            for (int j = 0; j < 3; j++) { // on prend le nom
                ch = str.nextToken();
            }

        }
        // listefamille a maintenant toute les familles

        // System.out.println("AJOUT FAMILLE DONE");

        //AJOUT ARTICLES
        //sc = sc.reset();
        sc.close(); // on ferme le fichier
        //is.close();
        InputStream test = getClass().getResourceAsStream("droguerie.csv");
        sc = new Scanner(test); // on rouvre le fichier et on le met dans sc
        //sc.nextLine();
        ch = sc.nextLine(); // on passe à la premiere ligne
        str = new StringTokenizer(ch, ";"); // on coupe la chaine

        int j = 0;
        FamilleProduits familleajout; // on créé une famille de produit
        familleajout = new FamilleProduits();
        //System.out.println(ch);
        //while (sc.hasNextLine()) {
        for (i = 0; i < listefamille.size(); i++) { // on parcoure toute l'array liste de listefamille
            familleajout = (FamilleProduits) listefamille.get(i); // on ajoute une famille qui a deja son nom dans familleajout
            ArrayList arrayarticle; // on créé l'emplacement pour un article
            arrayarticle = new ArrayList();
            while (sc.hasNextLine() && j < nbarticles[i]) { // tant qu'il reste une ligne et que j est inférieur au nombre d'article de la famille
                ch = sc.nextLine(); // on passe a la ligne suivante du fichier
                str = new StringTokenizer(ch, ";"); // on coupe
                if (ch.contains(familleajout.getNom())) { // si la chaine contient le nom de la familleajout
                    Article nouvarticle; // on créé un nouvel article
                    nouvarticle = new Article();
                    nouvarticle.setCode(Integer.parseInt(str.nextToken())); // prend le code en int de la premiere coupure
                    nouvarticle.setDesignation(str.nextToken()); // prend la designation de la deuxieme coupure
                    nouvarticle.setFamilleprod(str.nextToken());
                    nouvarticle.setQtecdee(Integer.parseInt(str.nextToken()));
                    nouvarticle.setQtevendue(Integer.parseInt(str.nextToken()));
                    nouvarticle.setPrix(Float.parseFloat(str.nextToken()));

                    arrayarticle.add(nouvarticle); // on ajoute le nouvel article avec toute ses nouvelles propriétés
                    //System.out.print(familleajout.getNom()+ ";");

                    j++; // on augmente un j pour savoir au combientieme article on est
                    //System.out.print(j+" ");
                }

            }
            if (i == listefamille.size() - 1) { // (pour la derniere famille il faut le refaire une derniere fois)
                ch = sc.nextLine();
                str = new StringTokenizer(ch, ";");
                Article nouvarticle;
                nouvarticle = new Article();
                nouvarticle.setCode(Integer.parseInt(str.nextToken()));
                nouvarticle.setDesignation(str.nextToken());
                nouvarticle.setFamilleprod(str.nextToken());
                nouvarticle.setQtecdee(Integer.parseInt(str.nextToken()));
                nouvarticle.setQtevendue(Integer.parseInt(str.nextToken()));
                nouvarticle.setPrix(Float.parseFloat(str.nextToken()));

                arrayarticle.add(nouvarticle); // on ajoute l'article avec ses nouvelles propriétés
            }
            j = -1; // j repasse à -1 pour pouvoir ajouter les articles de la prochaine famille
            familleajout.setListearticles(arrayarticle); // familleajout aura une nouvelle liste d'article pour sa nouvelle famille (famille ajout est une familleproduit)
            listefamille.set(i, familleajout); // listefamille prendra cette nouvelle array liste d'article à la place i
            // en effet le set d'une array liste prend en compte la place et le type d'objet associé

        }


        //  System.out.println("AJOUT ARTICLE DONE");

    }

    public ArrayList getListefamille() { // un get pour pouvoir choper l'array listefamille et tout ce qu'on a mis dedans
        return listefamille;
    }

    public void loadhash() {

        InputStream is = getClass().getResourceAsStream("droguerie.csv");
        Scanner sc = new Scanner(is); // on ouvre le fichier et on le met dans sc

        String ch;
        int code;
        int j = 0;
        String codo = ""; // codo est un string

        sc.nextLine(); // toute la premiere ligne
        ch = sc.nextLine(); // toute la seconde
        //StringTokenizer str = new StringTokenizer(ch, ";"); // on coupe en élément le ch

        do {
            // il faut remplir la hashmap !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

            StringTokenizer str = new StringTokenizer(ch, ";"); // on coupe en élément le ch , à mettre dans la boucle  
            codo = str.nextToken();
            code = Integer.parseInt(codo);
            //System.out.println(code);

            Article nouvelarticle; // on créé un nouvel article
            nouvelarticle = new Article();
            nouvelarticle.setCode(code); // prend le code en int de la premiere coupure
            nouvelarticle.setDesignation(str.nextToken()); // prend la designation de la deuxieme coupure
            nouvelarticle.setFamilleprod(str.nextToken());
            nouvelarticle.setQtecdee(Integer.parseInt(str.nextToken()));
            nouvelarticle.setQtevendue(Integer.parseInt(str.nextToken()));
            nouvelarticle.setPrix(Float.parseFloat(str.nextToken()));

            mappy.put(code, nouvelarticle); // on ajoute un article et une clé dans la hashmap (la premiere 0) puis la seconde 1 etc...

            ch = sc.nextLine();
            j++;

        } while (sc.hasNextLine());

        // pour le dernier encore une fois
        StringTokenizer str = new StringTokenizer(ch, ";");
        codo = str.nextToken();
        code = Integer.parseInt(codo);
        //System.out.println(code);

        Article nouvelarticle; // on créé un nouvel article
        nouvelarticle = new Article();
        nouvelarticle.setCode(code); // prend le code en int de la premiere coupure
        nouvelarticle.setDesignation(str.nextToken()); // prend la designation de la deuxieme coupure
        nouvelarticle.setFamilleprod(str.nextToken());
        nouvelarticle.setQtecdee(Integer.parseInt(str.nextToken()));
        nouvelarticle.setQtevendue(Integer.parseInt(str.nextToken()));
        nouvelarticle.setPrix(Float.parseFloat(str.nextToken()));

        mappy.put(code, nouvelarticle); // on ajoute un article et une clé dans la hashmap

        j++;

        //System.out.println("\n\n\n\n" + j + "\n\n\n\n"); 1209 produits je crois

//           if(mappy.containsKey(753020) == true){
//               System.out.println("youhouuuuuuuuuuuuuuu"); // ca fonctionne parfaitement =D
//           }


    }

    public HashMap getMappy() { // un get pour pouvoir choper l'array listefamille et tout ce qu'on a mis dedans
        return mappy;
    }

    public void loadfam() {

        Load();

        String nomsesp;

        FamilleProduits famillenom; // on créé une famille de produit
        famillenom = new FamilleProduits();

        ArrayList listetest;
        listetest = new ArrayList();

        Article articletest;
        articletest = new Article();


        for (int i = 0; i < listefamille.size(); i++) {

            famillenom = (FamilleProduits) listefamille.get(i); // on ajoute une famille qui a deja son nom(dans liste famille) dans famillenom   
            nomsesp = famillenom.getNom();
            nomsesp = nomsesp.trim(); // enleve les espaces superflues
            //System.out.print(famillenom.getNom());

            listetest = famillenom.getListearticles(); // obtient une array liste d'article dans l'array liste famillenom (array liste de famille produit)


            mapfam.put(nomsesp, listetest); // on met dans la hashmap le nom clé de la famille correspondant à la liste

        }

    }

    public HashMap getMapfam() { // un get pour pouvoir choper l'array listefamille et tout ce qu'on a mis dedans
        return mapfam;
    }
}
*/
